//配置路由规则
import VueRouter from "vue-router";
//引入路由组件
import Login from '@/pages/Login'
import CarMenu from '@/pages/CarMenu'
import UserMenu from '@/pages/UserMenu'
import Stop from '@/pages/Stop'
import Pay from '@/pages/Pay'
import Statistics from '@/pages/Statistics'
import UserInfo from '@/pages/UserInfo'
import UpdateInfo from '@/pages/UpdateInfo'
import Home from '@/pages/Home'


//实例化VueRouter:push,replace的原型
const originPush = VueRouter.prototype.push
const originReplace = VueRouter.prototype.replace

//重写push|replace
//call与apply区别
//相同点:都可以调用函数一次，都可以篡改函数的上下文一次
//不同点:call与apply传递参数，call传递参数用逗号隔开，apply方法执行，传递数组
//参数1：跳转      参数2：成功的回调      参数3：失败的回调
VueRouter.prototype.push = function (location,resolve,reject) {
    if (resolve && reject) {
        originPush.call(this,location,resolve,reject)
    }else {
        originPush.call(this,location,()=>{ },()=>{ })
    }
},
VueRouter.prototype.replace = function(location,resolve,reject) {
    if (resolve && reject) {
        originReplace.call(this,location,resolve,reject)
    }else {
        originReplace.call(this,location,()=>{ },()=>{ })
    }
}

//创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            //默认显示登录路由组件
            path:'/',
            component:Login,
            meta:{show:false}
        },
        {
            //登录路由组件
            path:'/login',
            component:Login,
            meta:{show:false},
        },
        {
            //首页路由组件
            path:'/home',
            component:Home,
            meta:{show:true}
        },

        //管理员功能
        {
            //车辆管理路由组件
            path:'/carMenu',
            component:CarMenu,
            meta:{show:true}
        },
        {
            //用户管理路由组件
            path:'/userMenu',
            component:UserMenu,
            meta:{show:true}
        },
        {
            //统计报表路由组件
            path:'/statistics',
            component:Statistics,
            meta:{show:true}
        },

        //用户功能
        {
            //缴费管理路由组件
            path:'/pay',
            component:Pay,
            meta:{show:true}
        },
        {
            //停车管理路由组件
            path:'/stop',
            component:Stop,
            meta:{show:true}
        },
        {
            //修改信息路由组件
            path:'/update',
            component:UpdateInfo,
            meta:{show:true}
        },
        {
            //个人主页路由组件
            path:'/userInfo',
            component:UserInfo,
            meta:{show:true}
        },
    ]
})